rbtree: Remove gtk_rb_tree_find()
authorBenjamin Otte <otte@redhat.com>
Sat, 12 Jan 2019 14:09:37 +0000 (15:09 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 14 Jan 2019 01:14:11 +0000 (02:14 +0100)
Searching through the tree is too specific to use a general function.
All the existing code just copies and slightly adapts the same 20 lines
instead, so there's no reason to keep the complicated API.

gtk/gtkrbtree.c
gtk/gtkrbtreeprivate.h

index a7576ffc2bbe14b2f9fd84e9d3138159ad05c54e..bcadb8eed1e29b5977b65e30a99138cab40a0907 100644 (file)
@@ -707,55 +707,3 @@ gtk_rb_tree_remove_all (GtkRbTree *tree)
   tree->root = NULL;
 }
 
-gpointer
-gtk_rb_tree_find (GtkRbTree           *tree,
-                  gpointer            *out_before,
-                  gpointer            *out_after,
-                  GtkRbTreeFindFunc    find_func,
-                  gpointer             user_data)
-{
-  GtkRbNode *node, *before = NULL, *after = NULL;
-  int cmp;
-
-  if (tree->root == NULL)
-    {
-      if (out_before)
-        *out_before = NULL;
-      if (out_after)
-        *out_after = NULL;
-
-      return NULL;
-    }
-
-  node = tree->root;
-  for (cmp = find_func (tree, NODE_TO_POINTER (node), user_data);
-       cmp != 0;
-       cmp = find_func (tree, NODE_TO_POINTER (node), user_data))
-    {
-      if (cmp < 0)
-        {
-          before = node;
-          node = node->right;
-        }
-      else /* cmp > 0 */
-        {
-          after = node;
-          node = node->left;
-        }
-      if (node == NULL)
-        {
-          if (out_before)
-            *out_before = NODE_TO_POINTER (before);
-          if (out_after)
-            *out_after = NODE_TO_POINTER (after);
-          return NULL;;
-        }
-    }
-
-  if (out_before)
-    *out_before = NODE_TO_POINTER (gtk_rb_node_get_previous (node));
-  if (out_after)
-    *out_after = NODE_TO_POINTER (gtk_rb_node_get_next (node));
-
-  return NODE_TO_POINTER (node);
-}
index b73c80708d92d4e3265396f8966e41a68141ee85..46b6b0db862c11dc9630d87065dca51833b4d9fb 100644 (file)
@@ -33,9 +33,6 @@ typedef void            (* GtkRbTreeAugmentFunc)        (GtkRbTree
                                                          gpointer                 node,
                                                          gpointer                 left,
                                                          gpointer                 right);
-typedef int             (* GtkRbTreeFindFunc)           (GtkRbTree               *tree,
-                                                         gpointer                 node,
-                                                         gpointer                 user_data);
 
 GtkRbTree *          gtk_rb_tree_new_for_size           (gsize                    element_size,
                                                          gsize                    augment_size,
@@ -76,12 +73,6 @@ void                 gtk_rb_tree_remove                 (GtkRbTree
                                                          gpointer                 node);
 void                 gtk_rb_tree_remove_all             (GtkRbTree               *tree);
 
-gpointer             gtk_rb_tree_find                   (GtkRbTree               *tree,
-                                                         gpointer                *out_before,
-                                                         gpointer                *out_after,
-                                                         GtkRbTreeFindFunc        find_func,
-                                                         gpointer                 user_data);
-
 
 G_END_DECLS